PTX(1) | Narzędzia tekstowe GNU 2.0 | PTX(1) |
NAZWA¶
ptx - tworzy indeks permutacyjny zawartości pliku
SKŁADNIA¶
OPIS¶
Dokumentacja niniejsza nie jest już utrzymywana i może być niedokładna lub niekompletna. Autorytatywnym źródłem jest obecnie dokumentacja Texinfo. Dostęp do niej uzyskasz wpisując w wierszu poleceń:
Ta strona podręcznika opisuje polecenie ptx w wersji GNU.
ptx czyta plik tekstowy i tworzy indeks permutacyjny, z każdym słowem kluczowym umieszczonym we własnym kontekście.
Opcja -G (lub równoważna jej --traditional) wyłącza wszystkie rozszerzenia GNU i przywraca tryb tradycyjny, wprowadzając w ten sposób pewne ograniczenia i zmieniając niektóre wartości domyślne opcji programu. Jeżeli nie podano -G, to rozszerzenia GNU są zawsze aktywne. Są one opisane w odpowiednich miejscach tej dokumentacji.
Poszczególne opcje wyjaśniono w dalszych sekcjach.
Przy włączonych rozszerzeniach GNU, po opcjach może wystąpić zero, jeden lub kilka plików. Jeżeli nie podano plików, to program czyta standardowe wejście. Jeżeli podano jakieś pliki wejściowe, to są one czytane naraz tak, jakby były sklejone. Są jednak zupełnie rozdzielone kontekstowo, i, przy żądaniu automatycznego tworzenia odnośników, nazwy plików i numery linii odnoszą się do poszczególnych tekstowych plików wejściowych. We wszystkich przypadkach program tworzy indeks permutacyjny na standardowym wyjściu.
Przy wyłączonych rozszerzeniach GNU, to znaczy, gdy program działa w tradycyjnym trybie pracy, oprócz opcji może istnieć zero, jeden lub dwa parametry.
Jeśli nie ma parametrów, to program czyta standardowe wejście i tworzy indeks permutacyjny na standardowym wyjściu. Jeżeli jest tylko jeden parametr, to określa on nazwę pliku wejściowego, z którego, zamiast ze standardowego wejścia, będzie prowadzony odczyt. Jeżeli podano dwa parametry, to określają one odpowiednio plik wejściowy i tworzony plik wyjściowy. Bądź bardzo ostrożny, gdyż w tym przypadku zawartość pliku podanego jako przez drugi parametr jest niszczona. Zachowanie takie podyktowane jest wyłącznie zgodnością z ptx Systemu V, gdyż Standardy GNU stanowczo odradzają parametry wyjściowe nie poprzedzane opcją.
Zauważ, że jako dowolną z nazw plików wejściowych lub wartość opcji określającej plik można podać pojedynczy myślnik '-'. W takim przypadku przyjmowane jest standardowe wejście. Jednak nie ma sensu używanie tej konwencji więcej niż raz w danym wywołaniu programu.
Argumenty obowiązkowe dla długich opcji są również obowiązkowe dla krótkich opcji.
Opcje ogólne¶
- -C, --copyright
- Wypisuje krótką notę o prawach autorskich i warunkach kopiowania, następnie kończy pracę bez dalszego przetwarzania.
- -G, --traditional
- Jak już wyjaśniono, wyłącza wszystkie rozszerzenia GNU ptx i przełącza się na tradycyjny tryb działania.
- -t, --typeset-mode
- - nie zaimplementowano -
- --help
- Wyświetla informację o stosowaniu programu i dostępnych opcjach, kończy pracę.
- --version
- Wyświetla numer wersji programu i kończy pracę.
Wybór zestawu znaków¶
Przy obecnej konfiguracji, program zakłada, że plik jest zakodowany przy zastosowaniu 8-bitowego ISO 8859-1, zwanego też zestawem znaków Latin-1, chyba że zostanie skompilowany dla MS-DOS, wówczas używa zestawu IBM-PC. (Nic nie wiadomo o tym, by GNU ptx nadal działał na mniejszych maszynach MS-DOS.) W porównaniu z 7-bitowym ASCII, zestaw znaków będących literami jest więc inny. Fakt ten zmienia zachowanie dopasowywania wyrażeń regularnych. Stąd też, domyślne wyrażenie regularne dla słowa kluczowego dopuszcza akcentowane litery i litery spoza alfabetu angielskiego. Sortowanie słów kluczowych jest jednak nadal niewykończone; przestrzega ślepo odnośnego uporządkowania zestawu znaków.
- -f, --ignore-case
- Do celów sortowania zamienia małe litery na duże.
Wybór słów i przetwarzanie wejścia¶
- -b plik, --break-file=plik
- Zapewnia alternatywny (do -W) sposób opisywania, jakie znaki
tworzą słowa. Podany w tej opcji plik zawiera
listę znaków, które nie mogą być
częścią jednego słowa. Plik ten zwany jest
"plikiem podziału" ("Break file"). Każdy
ze znaków nie będący częścią
pliku podziału jest składową słów.
Jeżeli podano obie opcje: -b i -W, to -W ma
pierwszeństwo a -b jest ignorowana.
Przy włączonych rozszerzeniach GNU jedynym sposobem uniknięcia interpretacji znaku nowej linii jako znaku podziału jest zapisanie wszystkich znaków podziału w pliku nie zawierającym w ogóle znaku nowej linii, nawet na końcu. Przy wyłączonych rozszerzeniach GNU spacje, tabulacje i znaki nowej linii zawsze uważane są za znaki podziału, nawet jeśli nie ma ich w pliku podziału.
- -i plik, --ignore-file=plik
- Plik związany z tą opcją zawiera listę
słów, które nigdy nie powinny być brane jako
słowa kluczowe w skorowidzu wyjściowym. Zwany jest
"plikiem pomijania" ("Ignore file"). Zawiera w
każdej linii dokładnie jedno słowo. Koniec linii
rozdzielającej słowa nie podlega opcji -S.
Istnieje domyślny plik pomijania używany przez ptx, gdy nie podano niniejszej opcji, zwykle w /usr/local/lib/eign, jeśli nie zmieniono tego podczas instalacji. Chcąc deaktywować domyślny plik pomijania należy podać plik /dev/null.
- -o plik, --only-file=plik
- Plik związany z tą opcją zawiera listę
słów, które pozostaną w skorowidzu
wyjściowym. Każde słowo nie ujęte w tym pliku
jest pomijane. Plik zwany jest "plikiem
wyłączności" (Only file"). Zawiera po
jednym słowie w każdej linii. Koniec linii
rozdzielającej słowa nie podlega opcji -S.
Dla pliku wyłączności nie ma ustawienia domyślnego. W przypadku wystąpienia zarówno pliku pomijania jak i pliku wyłączności słowo uważane jest za kluczowe tylko wtedy, gdy podano je w pliku wyłączności a nie podano w pliku pomijania.
- -r, --references
- W każdej linii wejściowej początkowa sekwencja
nie-białych znaków zostanie przyjęta za
odnośnik, którego celem jest identyfikacja tej linii w
utworzonym indeksie permutacyjnym. Więcej na temat tworzenia
odnośników znajdziesz w sekcji Formatowanie
wyników ptx. Użycie tej opcji zmienia
domyślną wartość opcji -S.
Przy wykorzystaniu opcji -r program nie próbuje zbyt usilnie usuwać odnośników z kontekstów wyjścia, ale udaje mu się to poprawnie jeśli kontekst kończy się dokładnie na znaku nowej linii. Jeżeli opcji tej użyto z domyślną wartością opcji -S, lub jeśli wyłączone są rozszerzenia GNU, warunek ten jest zawsze spełniony. Odnośniki są wówczas całkowicie wykluczone z kontekstów wynikowych.
- -S regexp, --sentence-regexp=regexp
- Określa, jakie wyrażenie regularne będzie
opisywać koniec linii lub koniec zdania. W rzeczywistości
istnieje inne rozróżnienie pomiędzy końcami
linii czy końcami zdań niż wynik tego
wyrażenia regularnego, a granice linii wejściowych nie
mają żadnego specjalnego znaczenia poza tą
opcją. Domyślnie, gdy włączone są
rozszerzenia GNU, a nie jest używana opcja -r,
używane są końce zdań. W tym przypadku
używane jest dokładne regexp zapożyczone z GNU
emacsa:
Gdy wyłączone są rozszerzenia GNU lub użyta opcja -r, używane są końce linii. W tym przypadku, domyślnym wyrażeniem regularnym jest po prostu:
[.?!][]\"')}]*\($\\|\t\\| \\)[ \t\n]*
Zastosowanie pustego regexp jest równoważne całkowitemu wyłączeniu rozpoznawania końca linii lub końca zdania. Cały plik jest wówczas traktowany jak jedna długa linia lub zdanie. Użytkownik może również zakazać generowania wszystkich flag obcinania, korzystając z opcji -F "".
\nGdy słowa kluczowe trafiają się blisko początku zdania lub linii wejściowej, często tworzy to niewykorzystany obszar na początku wynikowej linii kontekstu. Gdy słowa kluczowe są blisko końca zdania lub linii wejściowej, często tworzy to niewykorzystany obszar na końcu wynikowej linii. Program usiłuje wypełnić te obszary zawijając kontekst w ich wnętrzu. Końcówka zdania (linii wejściowej) używana jest do wypełnienia niewykorzystanego obszaru po lewej stronie linii wynikowej, początek używany jest do wypełnienia obszaru po prawej.
Dla wygody użytkownika rozpoznawanych jest wiele zwyczajowych sekwencji specjalnych (poprzedzanych odwrotnym ukośnikiem), jakie występują w C. Są one przekształcane na odpowiadające im znaki przez sam ptx.
- -W regexp, --word-regexp=regexp
- Określa, jakie wyrażenie regularne będzie
opisywać każde ze słów kluczowych.
Domyślnie, jeśli włączone są
rozszerzenia GNU, słowo jest sekwencją liter:
używanym regexp jest '\w+'. Gdy rozszerzenia GNU
są wyłączone, słowem jest domyślnie
wszystko kończące się spacją, tabulacją
lub znakiem nowej linii: używanym regexp jest '[^
\t\n]+'.
Puste wyrażenie regularne jest równoważne nie podaniu tej opcji, pozwalając zadziałać domyślnemu.
Dla wygody użytkownika rozpoznawanych jest wiele zwyczajowych sekwencji specjalnych (poprzedzanych odwrotnym ukośnikiem), jakie występują w C. Są one przekształcane na odpowiadające im znaki przez sam ptx.
Formatowanie wyników¶
Format wynikowy jest sterowany głównie opcjami -O i -T, opisanych poniżej. Jeżeli nie wybrano ani opcji -O ani -T, a włączone są rozszerzenia GNU, to program wybiera format wyjściowy odpowiedni dla terminala uproszczonego. Każde wystąpienie słowa kluczowego wypisywane jest na środku jednej linii, otoczone przez swój lewy i prawy kontekst. Pola są poprawnie wyrównywane, więc skorowidz wynikowy można z łatwością studiować. Jeżeli wybrano automatyczne odnośniki opcją -A i są one wypisane przed lewym kontekstem, to jest, jeżeli nie wybrano opcji -R, to po odnośniku dodawany jest dwukropek. Ładnie współpracuje to z przetwarzaniem przez GNU Emacsa 'next-error'. W tym domyślnym formacie wyjściowym, każdy biały znak, jak znak nowej linii czy tabulacja, jest po prostu zamieniany na dokładnie jedną spację, bez specjalnych prób kompresowania ciągu kolejnych spacji. W przyszłości może się to zmienić. Za wyjątkiem białych znaków, każdy inny znak odnośnego zestawu 256 znaków przekazywany jest dosłownie.
Format wyjściowy sterowany jest dodatkowo poniższymi opcjami.
- -g liczba, --gap-size=liczba
- Określa rozmiar minimalnej przerwy pomiędzy polami w linii wyjściowej.
- -w liczba, --width=liczba
- Określa maksymalną szerokość każdej ostatecznej linii wyjścia. Jeżeli stosowane są odnośniki, to są one ujęte lub nie ujęte w tej szerokości w zależności od wartości opcji -R. Jeżeli nie użyto tej opcji, to znaczy, gdy odnośniki wypisywane są przed lewym kontekstem, maksymalna szerokość wyjścia bierze pod uwagę maksymalną długość wszystkich odnośników. Jeżeli użyto opcji -R, to znaczy, gdy odnośniki wypisywane są po prawym kontekście, maksymalna szerokość nie uwzględnia miejsca zajętego przez odnośniki ani przerw, które je poprzedzają.
- -A, --auto-reference
- Tworzy automatyczne odnośniki. Każda linia wejściowa będzie posiadać automatyczny odnośnik utworzony z nazwy pliku i liczby porządkowej linii, z pojedynczym dwukropkiem między nimi. Jednak nazwa pliku będzie pusta, jeśli odczytywane jest standardowe wejście. Jeżeli podano zarówno opcję -A jak i -r, to wejściowy odnośnik jest nadal czytany i przeskakiwany, ale podczas wypisywania wyników używany jest automatyczny odnośnik, przesłaniając wejściowy odnośnik.
- -R, --right-side-refs
- W domyślnym formacie wyjściowym, gdy nie jest używana
opcja -R, każdy odnośnik utworzony w wyniku opcji
-r lub -A podawany jest w skrajnej prawej
części linii wyjściowej, po prawym kontekście.
W domyślnym formacie wyjściowym, przy podanej opcji
-R, odnośniki są natomiast podawane na
początku linii wyjściowej, przed lewym kontekstem. W
każdym innym formacie wyjściowym opcja -R jest niemal
ignorowana, z wyjątkiem tego, że szerokość
odnośników nie jest wówczas jest wliczana do
całkowitej szerokości wyjścia podanej przez
-w.
Opcja ta jest wybierana automatycznie przy wyłączeniu rozszerzeń GNU.
- -F łańcuch, --flac-truncation=łańcuch
- Żąda, by każde obcięcie w wyjściu
było zgłoszone za pomocą
łańcucha. Większość pól
wynikowych teoretycznie rozciąga się w stronę
początku lub końca bieżącej linii, lub
bieżącego zdania, jak ustalono opcją -S.
Istnieje jednak maksymalna dozwolona szerokość linii
wyjściowej, zmieniana opcją -w, która jest
następnie dzielona na części dla
różnych pól wyjściowych. Jeżeli pole
nie może się rozciągać aż do
początku lub końca bieżącej linii i
mieścić w zadanej szerokości, wówczas
następuje obcięcie. Domyślnie łańcuchem
oznaczający obcięcie jest pojedynczy ukośnik, jak w
'-F /'.
łańcuch może mieć więcej niż jeden znak, jak w '-F ...'. W szczególnym przypadku, gdy łańcuch jest pusty ('-F ""'), oznaczanie obcięcia jest wyłączane. Nie są wówczas dołączane żadne znaczniki obcięcia.
Dla wygody użytkownika rozpoznawanych jest wiele zwyczajowych sekwencji specjalnych (poprzedzanych odwrotnym ukośnikiem), jakie występują w C. Są one przekształcane na odpowiadające im znaki przez sam ptx.
- -Młańcuch, --macro-name=łańcuch
- Określa inny łańcuch, jaki ma być stosowany zamiast 'xx' przy tworzeniu wyjścia odpowiedniego dla nroff, troff lub TeX.
- -O, --format=roff
- Wybiera format wyjściowy odpowiedni dla przetwarzania przez
nroff lub troff. Linie wyjściowe są typu:
W tym formacie każdy znak nie-graficzny, jak znak nowej linii czy tabulacja, jest po prostu zamieniany na dokładnie jedną spację, bez specjalnych prób kompresowania ciągu kolejnych spacji. Wszystkie znaki cytowania: `"' są podwajane, by zostały poprawnie przetworzone przez nroff czy troff.
- -T, --format=tex
- Wybiera format wyjściowy odpowiedni dla przetwarzania przez
TeX. Linie wyjściowe są typu:
\xx {KOŃC}{PRZED}{SŁOWOKLUCZ}{PO}{POCZ}{ODNOŚNIK}
więc możliwe będzie napisanie definicji '\xx' do obsługi składu otrzymanego wyjścia. Zauważ, że gdy nie są tworzone odnośniki, to znaczy, gdy nie użyto ani opcji -A ani -r, nie pojawia się ostatni parametr każdego wywołania '\xx'. Opcją -M można zmienić 'xx' na inną nazwę makra.W tym formacie niektóre znaki specjalne, jak '$','%', '&' poprzedzenie ich odwrotnym ukośnikiem. Nawiasy klamrowe '{','}' też są chronione w ten sposób, ale również ujęte między parę znaków dolara, by wymusić tryb matematyczny. Sam odwrotny ukośnik generuje sekwencję '\backslash{}'. Daszki (circumflex) i tyldy nad literami generują odpowiednio sekwencje '^\{ }' i '~\{ }'. Inne znaki diakrytyczne w odnośnym zestawie znaków dają odpowiednie sekwencje TeX-a, na ile jest to możliwe. Inne znaki nie-graficzne, jak znak nowej linii, i tabulacja, i wszystkie inne znaki nie będące częścią ASCII, są po prostu zamieniane na dokładnie jedną spację, bez specjalnych prób kompresowania ciągu kolejnych spacji. Proszę dać znać autorowi jak ulepszyć przetwarzanie tych znaków specjalnych dla TeX-a.
Rozszerzenia GNU¶
Ta wersja ptx zawiera kilka cech nieistniejących w ptx z Systemu V. Można je wyeliminować przy pomocy opcji -G linii poleceń, chyba że zostanie ona przesłonięta przez inne opcje. Niektóre rozszerzenia nie mogą być przywrócone przez przesłonięcie, zatem prostą zasadą jest unikanie -G jeżeli chce się korzystać z rozszerzeń GNU. Poniżej podano różnice pomiędzy tym programem a ptx z Systemu V.
- *
- Niniejszy program potrafi czytać wiele plików
wejściowych naraz, zawsze zapisuje powstały skorowidz na
standardowe wyjście. Z drugiej strony, ptx z System V czyta tylko
jeden plik i tworzy wynik na standardowym wyjściu lub, jeśli
w wywołaniu polecenia podano drugi parametr plik, w zadanym
pliku.
Posługiwanie się parametrami wyjścia nie poprzedzonymi opcjami jest dość niebezpieczną praktyką, której GNU w miarę możliwości unika. Zatem, przy posługiwaniu się ptx przenośnie między GNU a System V, powinno się zwracać uwagę, by zawsze używać go z jednym plikiem wejściowym i zawsze oczekiwać wyniku na standardowym wyjściu. Można również automatycznie skonfigurować wywoływania ptx z opcją -G w produktach go używających, jeśli konfigurator zauważy, że instalowany ptx akceptuje -G.
- *
- Jedynymi opcjami dostępnymi w ptx z System V są '-b', '-f', '-g', '-i', '-o', '-r', '-t' i '-w'. Wszystkie inne opcje są rozszerzeniami GNU i nie są powtórzone w tym wyliczeniu. Ponadto, niektóre opcje mają nieco inne znaczenie przy włączonych rozszerzeniach GNU, jak wyjaśniono poniżej.
- *
- Domyślnie, skorowidz wyjściowy nie jest sformatowany dla 'troff' czy 'nroff'. Zamiast tego sformatowany jest dla terminala uproszczonego. Wyjście dla 'troff' lub 'nroff' można wybrać opcją -O.
- *
- Dopóki nie użyto opcji -R maksymalna szerokość odnośników jest odejmowana od całkowitej szerokości linii wyjściowej. Przy wyłączonych rozszerzeniach GNU, szerokość odnośników nie jest uwzględniana w obliczeniach szerokości linii wyjściowej.
- *
- Czytane i przetwarzane z pliku wejściowego są zawsze wszystkie z 256 znaków zestawu, nawet znaki NUL, bez niepoprawnego efektu, nawet gdy rozszerzenia GNU są wyłączone. Jednak ptx z Systemu V nie przyjmuje 8-bitowych znaków, odrzucanych jest kilka znaków sterujących, a tylda '~' jest potępiona.
- *
- Długość linii wejściowej jest ograniczona tylko dostępną pamięcią, nawet przy wyłączonych rozszerzeniach GNU. Jednak ptx z Systemu V przetwarza tylko 200 pierwszych znaków linii.
- *
- Domyślnymi znakami podziału (nie-słowami) są wszystkie znaki oprócz liter odnośnego zestawu znaków, diakrytycznych lub nie. Przy wyłączonych rozszerzeniach GNU domyślnymi znakami podziału są wyłącznie spacja, tabulacja i znak nowej linii.
- *
- Program lepiej posługuje się szerokością linii wyjściowej. Jeżeli wyłączono rozszerzenia GNU, program próbuje zamiast tego imitować ptx z System V, ale istnieje kilka niewielkich zakłóceń, których niniejszy program całkowicie nie powiela.
- *
- Użytkownik może podać równocześnie plik pomijania i plik wyłączności. W ptx z System V nie jest to dozwolone.
ZGŁASZANIE BŁĘDÓW¶
Błędy proszę zgłaszać, w jęz. ang., do <bug-textutils@gnu.org>.
COPYRIGHT¶
Copyright © 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
ZOBACZ TAKŻE¶
OD TŁUMACZA¶
Zaktualizowano i poszerzono wg dokumentacji Texinfo dla narzędzi tekstowych GNU wersji 2.0.
FSF | sierpień 1999 |